home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS 8 / P8A004.dsk / FILECAB.MOD.bas < prev    next >
BASIC Source File  |  2012-02-16  |  5KB  |  147 lines

  1. 10  REM **FILE CABINET MODIFIER**
  2. 20  REM        WRITTEN BY
  3. 30  REM      MICHAEL MOORE
  4. 40 :
  5. 50  REM        JUNE 1984
  6. 60  TEXT : HOME : CLEAR 
  7. 62  TEXT : HOME : VTAB 5
  8. 64  HTAB 10: PRINT "FILECABINET MODIFIER"
  9. 66  HTAB 10: PRINT "  BY MICHAEL MOORE": PRINT 
  10. 70  GOSUB 2010: REM  SETUP INPUT ANYTHING
  11. 75  VTAB 8: PRINT "DISPLAY INSTRUCTIONS ? (Y/N) ";: GET A$
  12. 76  PRINT A$
  13. 78  IF  LEFT$(A$,1) = "Y"  THEN  GOSUB 3010
  14. 80  VTAB 12: PRINT "INSERT FILE CABINET DISK - PRESS A KEY";: GET A$: PRINT 
  15. 90 D$ =  CHR$(4)
  16. 100  PRINT D$;"PREFIX"
  17. 110  INPUT PX$: REM  OBTAIN CURRENT DISK PATH
  18. 120  DIM HD$(20),BN$(40)
  19. 130  ONERR  GOTO 1950
  20. 135  PRINT D$;"VERIFY";PX$ +"BASENAMES"
  21. 140  PRINT D$;"OPEN";PX$ +"BASENAMES"
  22. 145  PRINT D$;"READ";PX$ +"BASENAMES"
  23. 150  INPUT NB$:NB =  VAL(NB$)
  24. 160  FOR N = 1 TO NB: CALL 768,BN$(N): NEXT N
  25. 170  PRINT D$;"CLOSE"
  26. 180  POKE 216,0
  27. 200  REM  << DISPLAY DATA BASE NAMES >>
  28. 210  HOME : VTAB 5
  29. 220  PRINT "DATA BASE NAMES ON FILE----": PRINT 
  30. 230  FOR N = 1 TO NB
  31. 240  PRINT N;"  ";BN$(N)
  32. 250  NEXT N
  33. 260  PRINT : PRINT "ENTER NUMBER OF DATA BASE TO BE         MODIFIED... ";: GET K$: PRINT K$
  34. 265 DB =  VAL(K$)
  35. 270  ONERR  GOTO 1950
  36. 280 Q$ = PX$ +BN$(DB) +"/" +"HEADER"
  37. 290  PRINT D$;"VERIFY";Q$
  38. 300  PRINT D$;"OPEN";Q$
  39. 310  PRINT D$;"READ";Q$
  40. 320  INPUT NH
  41. 330  FOR N = 1 TO NH
  42. 340  CALL 768,HD$(N)
  43. 350  NEXT N
  44. 360  PRINT D$;"CLOSE"
  45. 365  POKE 216,0
  46. 370  HOME : VTAB 5
  47. 380  PRINT "HEADERS ON FILE ---": PRINT 
  48. 390  FOR N = 1 TO NH
  49. 400  PRINT N;"  ";HD$(N)
  50. 410  NEXT N
  51. 420  PRINT : PRINT "TO CHANGE A HEADER, ENTER THE NUMBER OF THE HEADER TO BE MODIFIED.": PRINT 
  52. 430  PRINT "TO ADD A NEW HEADER, ENTER A NUMBER     GREATER THAN THE LAST SHOWN HEADER      NUMBER.": PRINT 
  53. 440  PRINT "PRESS 'RETURN' TO END MODIFICATIONS."
  54. 445  PRINT  SPC( 10);"ENTER CHOICE : ";
  55. 450  GET K$:K =  VAL(K$): PRINT K$
  56. 460  IF K = 0  AND ADDER = 0  AND CHANGE$ < >"YES" GOTO 1910
  57. 470  IF K = 0  AND ADDER >0  OR CHANGE$ = "YES" GOTO 810: REM  WRITE NEW HEADER
  58. 480  IF K >N -1 GOTO 610
  59. 490  IF K <0 GOTO 370
  60. 500  REM  << CHANGE HEADER >>
  61. 510  HOME : VTAB 5
  62. 520  PRINT "ORIGINAL HEADER NAME : ";HD$(K): PRINT 
  63. 530  PRINT "TO MAKE NO CHANGE, PRESS 'RETURN": PRINT : PRINT 
  64. 540  INPUT "ENTER REVISED HEADER NAME : ";H$
  65. 550  IF  LEN(H$) = 0 GOTO 370
  66. 555 CHANGE$ = "YES"
  67. 560 HD$(K) = H$
  68. 570  GOTO 370
  69. 600  REM  << ADD HEADER >>
  70. 610 NH = NH +1
  71. 620 HD$(NH) = "*MISC*"
  72. 630 ADDER = ADDER +1: REM  FLAG TO INDICATE NUMBER OF ADDED HEADERS
  73. 640  GOTO 370
  74. 800  REM << WRITE NEW HEADER >>
  75. 810 Q$ = PX$ +BN$(DB) +"/" +"HEADER"
  76. 820  PRINT D$;"OPEN";Q$
  77. 830  PRINT D$;"WRITE";Q$
  78. 840  PRINT NH
  79. 850  FOR N = 1 TO NH
  80. 860  PRINT HD$(N)
  81. 870  NEXT N
  82. 880  PRINT D$;"CLOSE"
  83. 890  IF ADDER >0 GOTO 1010: REM NEED TO CHANGE INDEX 
  84. 900  REM << MODIFY MORE FILES >>
  85. 910  PRINT : INPUT "MODIFY MORE FILES (Y/N) ? ";YN$:YN$ =  LEFT$(YN$,1): IF YN$ < >"Y"  AND YN$ < >"N" GOTO 910
  86. 920  IF YN$ = "N" GOTO 1910
  87. 930  GOTO 60
  88. 1000  REM  << CHANGE INDEX >>
  89. 1010 Q$ = PX$ +BN$(DB) +"/" +"INDEX"
  90. 1020  PRINT D$;"OPEN";Q$
  91. 1030  PRINT D$;"READ";Q$
  92. 1040  INPUT NR
  93. 1050  FOR I = 1 TO NR
  94. 1055  FOR J = 1 TO NH -ADDER
  95. 1060  CALL 768,DX$(I,J)
  96. 1065  NEXT J
  97. 1070  NEXT I
  98. 1080  PRINT D$;"CLOSE"
  99. 1100  REM  << WRITE REVISED INDEX >>
  100. 1110  PRINT D$;"OPEN";Q$
  101. 1120  PRINT D$;"WRITE";Q$
  102. 1130  PRINT NR
  103. 1140  FOR I = 1 TO NR
  104. 1145  FOR J = 1 TO NH -ADDER
  105. 1150  PRINT DX$(I,J)
  106. 1160  NEXT J
  107. 1170  FOR L = 1 TO ADDER
  108. 1180  PRINT  CHR$(32)
  109. 1190  NEXT L
  110. 1200  NEXT I
  111. 1210  PRINT D$;"CLOSE"
  112. 1500  REM << MODIFY MORE FILES >> 
  113. 1510  PRINT : INPUT "MODIFY MORE FILES (Y/N) ? ";YN$:YN$ =  LEFT$(YN$,1): IF YN$ < >"Y"  AND YN$ < >"N" GOTO 1510
  114. 1520  IF YN$ = "N" GOTO 1910
  115. 1530  GOTO 60: REM  RETURN TO START
  116. 1900  REM  << TERMINATION MESSAGES >>
  117. 1910  HOME : PRINT "ENTER 'RUN' TO RESTART....": END 
  118. 1950  HOME : PRINT "PROGRAM ABORT DUE TO FILE ERROR.....    CHECK FOR PROPER DISK AND FILES         AND RETRY.": END 
  119. 2000  REM  << INPUT ANYTHING >>
  120. 2010  FOR X = 1 TO 71: READ X%: POKE 768 +X -1,X%: NEXT X: RESTORE : RETURN 
  121. 2020  DATA  32,190,222,32,227,223,36,17,208,5,162,0,76,15,3,133,133,132,134,165
  122. 2030  DATA  184,164,185,133,135,132,136,32,44,213,173,0,2,201,3,208,3,76,99,216
  123. 2040  DATA  169,0,133,13,133,14,169,0,160,2,32,237,227,32,61,231,32,123,218,165
  124. 2050  DATA  135,164,136,133,184,132,185,32,183,0,96,0,0,0,0,0,0,0,0,0
  125. 3000  REM  << INSTRUCTIONS >>
  126. 3010  TEXT : HOME : VTAB 5
  127. 3020  HTAB 10: PRINT "FILECABINET MODIFIER"
  128. 3030  HTAB 10: PRINT "  BY MICHAEL MOORE": PRINT 
  129. 3035  POKE 34,7: REM     SET TOP WINDOW
  130. 3040  PRINT "THIS PROGRAM PERMITS THE ADDITION OF    HEADERS TO FILES CREATED BY THE PRODOS  VERSIONS OF 'FILECABINET'.": PRINT 
  131. 3050  PRINT "BLANK DATA FIELDS ARE ADDED FOR EACH    CORRESPONDING HEADER.": PRINT 
  132. 3060  PRINT "A DUMMY HEADER NAME OF *MISC* IS        PROVIDED FOR EACH ADDITION. THESE CAN   BE CHANGED USING THE HEADER CHANGE      FEATURE OF THIS PROGRAM.": PRINT 
  133. 3070  GOSUB 4910: HOME 
  134. 3080  PRINT "HEADERS CAN BE CHANGED BY ENTERING THE  NUMBER CORRESPONDING TO THE HEADER TO   BE REVISED. ": PRINT 
  135. 3090  PRINT "ENTRY OF HEADER NAMES SHOULD CONFORM    TO FILE CABINET LENGTH RESTRICTIONS     OF 15 CHARACTERS MAXIMUM.": PRINT 
  136. 3100  GOSUB 4910: HOME 
  137. 3110  TEXT : RETURN 
  138. 4900  REM   << CONTINUE REQUEST >> 
  139. 4910  PRINT "PRESS ANY KEY TO CONTINUE";: GET K$
  140. 4920  RETURN 
  141. 5000  REM  **********************
  142. 5010  REM        FILE CABINET                   MODIFIER               
  143. 5020  REM     BY MICHAEL MOORE 
  144. 5030  REM        6/30/84
  145. 5040  REM   
  146. 5050  REM  **********************
  147. 5060  REM   APPLE CORPS OF DALLAS